package com.smart.community.region.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.smart.community.region.entity.BuildingTypeCategory;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 建筑类型基础分类Mapper接口
 * 
 * @author Wu.Liang
 * @since 2025-01-30
 */
@Mapper
public interface BuildingTypeCategoryMapper extends BaseMapper<BuildingTypeCategory> {

    /**
     * 根据父分类ID查询子分类列表
     * 
     * @param parentId 父分类ID
     * @return 子分类列表
     */
    List<BuildingTypeCategory> selectByParentId(@Param("parentId") Long parentId);

    /**
     * 根据分类类型查询分类列表
     * 
     * @param categoryType 分类类型
     * @return 分类列表
     */
    List<BuildingTypeCategory> selectByCategoryType(@Param("categoryType") String categoryType);

    /**
     * 根据划分方式查询分类列表
     * 
     * @param divisionType 划分方式
     * @return 分类列表
     */
    List<BuildingTypeCategory> selectByDivisionType(@Param("divisionType") String divisionType);

    /**
     * 根据ID列表查询分类列表
     * 
     * @param ids ID列表
     * @return 分类列表
     */
    List<BuildingTypeCategory> selectByIds(@Param("ids") List<Long> ids);

    /**
     * 查询所有顶级分类（划分方式）
     * 
     * @return 顶级分类列表
     */
    List<BuildingTypeCategory> selectTopLevelCategories();
}
